Dans cet article, je me propose de vous faire découvrir quelques propriétés de la balise
Les quatre propriétés que nous allons découvrir sont les suivantes :
- curentTime : de type float, elle donne la position courante de la lecture en secondes.
- duration : de type float, elle donne la durée totale de la vidéo.
- paused : de type boolean, elle indique si la lecture est en pause.
- readyState : de type integer, elle indique l’état de la vidéo concernant la lecture.
Pour compléter ces quatre propriétés, nous allons faire appel à 2 méthodes :
- play() : pour démarrer la lecture.
- pause() : pour mettre en pause la lecture.
Le HTML :
Soit donc une balise vidéo insérée dans une page html :
Au lieu d’ajouter, la barre de contrôle proposée par défaut par le HTML5 en utilisant l’attribut controls, ajoutons un bloc de commande personnalisable :
Le JavaScript :
Une première fonction loading, attend que la vidéo soit chargée – video.readyState – pour :
- récupérer et afficher la durée de la vidéo : video.duration
- déclarer le gestionnaire d’événement lié au clique sur le bouton PLAY. Ce gestionnaire appellera une fonction chargée de lancer la vidéo – video.play() – mais aussi la fonction qui met à jour le temps écoulé ou de mettre en pause la vidéo – video.pause().
La deuxième fonction timing, quant à elle, surveille si la vidéo est en cours de lecture – !video.paused – si tel est le cas, elle récupère et affiche le temps écoulé dans la barre de commande – video.currentTime.
Le résultat
See the Pen Balise video HTML5, propriétés et méthodes JS by Frédéric MISERY (@FredM) on CodePen.
Voilà, désormais la balle est dans le camp des spécialistes du CSS pour styliser cette barre de commande. Cela ne devrait pas être difficile de faire mieux 😉